#include <stdio.h>
int main() {
    int num1 = -3;   // 10000000 00000000 00000000 00000011 补码-> 11111111 11111111 11111111 11111101
    int num2 = 5;    // 00000000 00000000 00000000 00000101 补码-> 00000000 00000000 00000000 00000101
    printf("%d\n",num1 & num2);  // 全是1则是1，否则为0        00000000 00000000 00000000 00000101   ->  5   正数的补码就是原码
    printf("%d\n",num1 | num2);  // 有一个为1，就为1，否则为0   11111111 11111111 11111111 11111101  -> 10000000 00000000 00000000 00000011 -原码 -> -3
    printf("%d\n",num1 ^ num2);  // 相同为0，不同为1          11111111 11111111 11111111 11111000  -> 10000000 00000000 00000000 00001000 - 原码 -> -8
    printf("%d\n",~0);                // 00000000 00000000 00000000 00000000  取反 11111111 11111111 11111111 11111111 补码 ->  10000000 00000000 00000000 00000001 -> -1
    return 0;
}